Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIG-5414 Fix the build for Linux ARM64 #35

Open
wants to merge 6 commits into
base: trunk
Choose a base branch
from

Conversation

martin-g
Copy link
Member

@martin-g martin-g commented Nov 12, 2020

More and more software deployment and deployment is being done on ARM64 CPU architecture.
It would be good if Apache Pig is being regularly tested on ARM64.

https://cwiki.apache.org/confluence/display/PIG/HowToContribute mentions Jenkins job (https://builds.apache.org/job/Pig-trunk-commit) but it seems it got lost at some point.

Update Snappy because the old version does not provide native library for aarch64 (ARM64).
Update Avro to 1.8.2 because otherwise TestAvroStorage and TestOrcStorage tests fail on Linux ARM64.
Add TravisCI build config to run the build on Linux ARM64.

@martin-g
Copy link
Member Author

martin-g commented Nov 12, 2020

@emiliofernandes
Copy link

+1 for official support for ARM64!

@gancho-ivanov
Copy link

gancho-ivanov commented Jan 11, 2021

One more +1 for ARM64 support!

@martin-g martin-g force-pushed the feature/build-on-arm64 branch from 6583936 to 5a66a54 Compare October 12, 2021 10:40
Upgrade Apache Avro to 1.8.2 because otherwise TestAvroStorage and TestOrcStorage*.java fail.
Update Snappy because the old version does not provide native library for aarch64 (ARM64)
Add TravisCI build config that builds and tests on AMD64 and ARM64 architectures
@martin-g martin-g force-pushed the feature/build-on-arm64 branch from 568e318 to 2ee3588 Compare October 13, 2021 13:30
@martin-g martin-g force-pushed the feature/build-on-arm64 branch from dc76d29 to d0082a2 Compare October 14, 2021 07:43
@martin-g martin-g changed the title Add TravisCI build config that builds and tests on AMD64 and ARM64 architectures PIG-5414 Fix the build for Linux ARM64 Oct 14, 2021
@@ -181,12 +181,10 @@
<dependency org="org.apache.avro" name="trevni-core" rev="${avro.version}"
conf="compile->default;checkstyle->master">
<artifact name="trevni-core" ext="jar" />
<artifact name="trevni-core" type="test-jar" ext="jar" m:classifier="tests"/>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those break Ivy with:

/home/martin/git/apache/pig/build.xml:1777: impossible to ivy retrieve: java.lang.RuntimeException: problem during retrieve of org.apache.pig#pig: java.lang.RuntimeException: Multiple artifacts of the module org.apache.avro#trevni-core;1.8.2 are retrieved to the same file! Update the retrieve pattern  to fix this error.
	at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:238)
	at org.apache.ivy.Ivy.retrieve(Ivy.java:561)
	at org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:113)
	at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:259)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:352)
	at org.apache.tools.ant.Target.execute(Target.java:437)
	at org.apache.tools.ant.Target.performTasks(Target.java:458)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1406)
	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1261)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:352)
	at org.apache.tools.ant.Target.execute(Target.java:437)
	at org.apache.tools.ant.Target.performTasks(Target.java:458)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1406)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1377)
	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1261)
	at org.apache.tools.ant.Main.runBuild(Main.java:857)
	at org.apache.tools.ant.Main.startAnt(Main.java:236)
	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:287)
	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.lang.RuntimeException: Multiple artifacts of the module org.apache.avro#trevni-core;1.8.2 are retrieved to the same file! Update the retrieve pattern  to fix this error.
	at org.apache.ivy.core.retrieve.RetrieveEngine.determineArtifactsToCopy(RetrieveEngine.java:413)
	at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:122)
	... 32 more

It seems they are not really needed. The build passes!

They break Ivy with:

/home/martin/git/apache/pig/build.xml:1777: impossible to ivy retrieve: java.lang.RuntimeException: problem during retrieve of org.apache.pig#pig: java.lang.RuntimeException: Multiple artifacts of the module org.apache.avro#trevni-core;1.8.2 are retrieved to the same file! Update the retrieve pattern  to fix this error.
	at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:238)
	at org.apache.ivy.Ivy.retrieve(Ivy.java:561)
	at org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:113)
	at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:259)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:352)
	at org.apache.tools.ant.Target.execute(Target.java:437)
	at org.apache.tools.ant.Target.performTasks(Target.java:458)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1406)
	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1261)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:352)
	at org.apache.tools.ant.Target.execute(Target.java:437)
	at org.apache.tools.ant.Target.performTasks(Target.java:458)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1406)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1377)
	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1261)
	at org.apache.tools.ant.Main.runBuild(Main.java:857)
	at org.apache.tools.ant.Main.startAnt(Main.java:236)
	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:287)
	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.lang.RuntimeException: Multiple artifacts of the module org.apache.avro#trevni-core;1.8.2 are retrieved to the same file! Update the retrieve pattern  to fix this error.
	at org.apache.ivy.core.retrieve.RetrieveEngine.determineArtifactsToCopy(RetrieveEngine.java:413)
	at org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:122)
	... 32 more
@martin-g martin-g force-pushed the feature/build-on-arm64 branch from 79b9c5b to 108edf5 Compare October 18, 2021 07:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants